package com.factory.rental.common;

import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

/**
 * 分页支持类，支持从第1页开始
 */
public class PageSupport {

    /**
     * 创建从第1页开始的Pageable对象
     * @param page 页码(从1开始)
     * @param size 每页大小
     * @return Pageable对象(内部转换为从0开始)
     */
    public static Pageable ofPage(int page, int size) {
        // 将用户输入的页码(从1开始)转换为Spring Data使用的页码(从0开始)
        return PageRequest.of(page - 1, size);
    }

    /**
     * 创建从第1页开始的Pageable对象，支持排序
     * @param page 页码(从1开始)
     * @param size 每页大小
     * @param sort 排序规则
     * @return Pageable对象(内部转换为从0开始)
     */
    public static Pageable ofPage(int page, int size, Sort sort) {
        // 将用户输入的页码(从1开始)转换为Spring Data使用的页码(从0开始)
        return PageRequest.of(page - 1, size, sort);
    }
}